Skip to content

Package / Actions Cleanup - Continuation of #435#436

Open
simmsa wants to merge 75 commits intoMHKiT-Software:developfrom
simmsa:package-cleanup-v2
Open

Package / Actions Cleanup - Continuation of #435#436
simmsa wants to merge 75 commits intoMHKiT-Software:developfrom
simmsa:package-cleanup-v2

Conversation

@simmsa
Copy link
Copy Markdown
Contributor

@simmsa simmsa commented Feb 25, 2026

This is a continuation and refinement of #435

Highlights:

From #435

  • Actions version updates:
    • checkout - v4 to v6
    • setup-python - v2 to v6
  • cdip fixes

Dependencies

Module Dependencies

  • Pin pandas below version 3.0
    • There are some subtle bugs related to underlying pandas changes that we should address and possibly fix that are out of scope of this PR.
  • Refactor dependencies to move xarray, netcdf, and h5 dependencies into all
    • This helps standardize the versions for all modules, and behind the scenes xarray typically requires both netcdf and h5.

Conda and Conda-Forge Dependency Definitions

  • Move conda forge environment file into environment-dev.yml and create new conda-forge-build job to test the conda-forge specific no deps build

Actions

Linting

  • Add filter to only run black on files that have changed
    • Intent is to reduce noise in the tests. It is a non goal to have all files share the same formatting, we are just trying to enforce formatting on new or changed code
  • Add Development Installation section to readme detailing pip, conda, and conda forge installation pathways

Coveralls

  • Pin coveralls action at v2
  • Adds a switch at the top of main.yml to toggle reporting coveralls upload failures as test failures. Coveralls failures are of the 500 variant, Error: Bad response: 530 error code: 1016 per: https://status.coveralls.io/ and this implements the recommended fail-on-error: false fix
Update - Outage will be extended for at least several more hours. To avoid further disruption to your CI workflows, we recommend employing the fail-on-error: false input option available with all official coveralls integrations. See: https://docs.coveralls.io/integrations#official-integrations.
Feb 24, 2026 - 19:28 PST

We can incorporate this into #435 if that makes sense. My main goal here is to understand what changes are necessary in #435

jmcvey3 and others added 30 commits February 19, 2026 09:01
There is a bug where something in requiring pyarrow that is likely
related to pandas 3.0.

Adding pyarrow as a dependency is a reasonable fix, but managing the
pyarrow version should be handled by pandas and not mhkit.

This pins pandas below 3.0 to see if pyarrow dependencies are caused by
including >= 3.0 somewhere.
```
prepare-nonhindcast-cache
The 'defaults' channel might have been added implicitly. If this is intentional, add 'defaults' to the 'channels' list. Otherwise, consider setting 'conda-remove-defaults' to 'true'.
```
shell: bash -l {0}
run: |
conda env create -f environment-dev.yml
conda activate mhkit-dev-env
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this "env create" line (319) is actually redundant after the "Setup Miniconda" routine in line 304. You just need line 320 here is activate the environment.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simmsa @akeeste So actually yeah, we're testing the full pip install using a conda environment every time. If we want a pure pip install, then we need to use venv as the package manager.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jmcvey3 good call on venv over conda for pip install testing. This is definitely a gap in the documentation and tests.

I will work to refactor accordingly including updating the README documentation to recommend venv for pip installs and updating the tests.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this "env create" line (319) is actually redundant after the "Setup Miniconda" routine in line 304. You just need line 320 here is activate the environment.

Good find here, also. Will fix...

**Pip development** (no conda):

```bash
pip install -e ".[all,dev]"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just adding a note to create and activate a venv environment here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, will update accordingly. LMK if other areas don't make sense here either, or could be clarified.

simmsa added 15 commits April 1, 2026 13:48
These changes were a reaction to failing tests, but it is likely that
the failing tests were not caused by this code specifically, but pandas
3.0 updates.

This reverts these changes back to the develop branch as they are likely
unnecessary for the tests to pass when pandas is pinned below 3.0
```
FAILED .github/workflows/test_read_adp.py::io_adp_testcase::test_io_nortek - FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/work/MHKiT-Python/MHKiT-Python/examples/data/dolfyn/AQD_HR.prf'
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants